/*
*   Fichier :		FPGA.h
*	Auteurs :		P12
*   Date :			2013-04-03
*   Version :		vSuivieProjet
*	Description :	Classe representant un FPGA
*/

#ifndef FPGA_H
#define FPGA_H

#include "CommunicationFPGA.h"
#include <string>

using namespace std;

enum VraiRegistre {TEMPERATURE = SW, PHONEMES = BTN, LUMIERES = LD};

class FPGA {
public:
	FPGA();
	void reset();

	// Getters
	const int getEtatTEMPERATURE();
	const int getEtatLUMIERES();
	const int getEtatPHONEMES();
	const int getEtatAN0();
	const int getEtatAN1();
	const int getEtatAN2();
	const int getEtatAN3();
	string getMessageErreur();

	// Setters
	void setEtatLUMIERES(int newEtat);
	void setEtatAN0(int newEtat);
	void setEtatAN1(int newEtat);
	void setEtatAN2(int newEtat);
	void setEtatAN3(int newEtat);

	bool lireTEMPERATURE();
	bool lirePHONEMES();
	bool lireLUMIERES();
	bool ecrireLUMIERES();
	bool ecrireAN0();
	bool ecrireAN1();
	bool ecrireAN2();
	bool ecrireAN3();
	bool estOk();

private:
	CommunicationFPGA commFPGA;
	int valeurTEMPERATURE;
	int valeurLUMIERES;
	int valeurPHONEMES;
	int valeurAN0;
	int valeurAN1;
	int valeurAN2;
	int valeurAN3;
};

#endif